package com.dragon.app.commons.service;

import com.dragon.app.commons.dto.BankcardSaveDTO;
import com.dragon.app.ykd.dto.BankCardInfosDTO;
import com.dragon.app.ykd.dto.BankCardLoanDTO;
import com.fintech.common.vo.FintechResult;

public interface BankService {
	
	/**
	 * 根据用户Id按照类型获取银行卡的信息<br>
	 * 0-放款卡,1-还款卡,2-信用卡
	 * 
	 * @param shortUrl
	 * @param response
	 * @return
	 */
	public FintechResult getBankCardList(String accessToken, String idFintechUmUser,
			BankCardInfosDTO bankCardInfosDTO);
	
	/**
	 * 根据用户Id按照类型获取绑卡信息<br>
	 * 0-放款卡,1-还款卡,2-信用卡
	 * 
	 * @param shortUrl
	 * @param response
	 * @return
	 */
	public FintechResult getBankBindList(String accessToken, String idFintechUmUser,
			BankCardInfosDTO bankCardInfosDTO);
	
	/**
	 * 接收用户填写的的宝付发送给客户的验证
	 * 去宝付那边获取这个卡跟这个商户号对应的协议号
	 * @param bankcardSaveDTO 
	 * @param accessToken
	 * @param idFintechUmUser
	 * @return
	 * @author shan
	 */
	public FintechResult saveBankCardNew(BankcardSaveDTO bankcardSaveDTO,
			 String accessToken,
			 String idFintechUmUser);
	
	
	/**
	 * 设置放款卡 还款卡 type 1 还款卡 2 放款卡 id 放款卡的id
	 * 
	 * @param shortUrl
	 * @param response
	 * @return
	 */
	public FintechResult bankCardLoan(String loanId, BankCardLoanDTO bankCardLoanDTO,
			String accessToken, String idFintechUmUser);
	
	
	/**
	 * 根据银行产品信息预绑卡接口发送验证码
	 * 
	 * @param bankcardSaveDTO
	 * @return
	 */
	public FintechResult bankPreBindCard(BankcardSaveDTO bankcardSaveDTO,String accessToken,String idFintechUmUser);
	
	/**
	 * 查询支持的银行列表
	 */
	public FintechResult sustainBankList(String accessToken,String idFintechUmUser);
	
	/**
	 * 根据卡号获取卡信息
	 * 
	 * @param bankCardNo
	 * @return
	 */
	public FintechResult queryBnakCardBin(String bankCardNo);
	
	/**
	 * 查询绑定成功的银行卡列表 
	 * 优先展示当前渠道的银行卡，如果存在老渠道的也会查出，根据is_support字段区分当前渠道是否支持
	 * @param accessToken
	 * @param idFintechUmUser
	 * @return
	 */
	public FintechResult queryBankList(String accessToken, String idFintechUmUser);
	
	/**
	 * 设置默认卡
	 * @param accessToken
	 * @param idFintechUmUser
	 * @param bankCardLoanDTO
	 * @return
	 */
	FintechResult setDefaultCard(String accessToken, String idFintechUmUser, BankCardLoanDTO bankCardLoanDTO);
	
}
